home *** CD-ROM | disk | FTP | other *** search
/ Revista CD Expert 8 / Revista CD Expert nº 08 CD1.iso / Utilitarios / Programacao / Pacific C for DOS / EXAMPLES / SIEVE.C < prev    next >
C/C++ Source or Header  |  1995-03-08  |  566b  |  34 lines

  1. #include    <stdio.h>
  2. #include    <stdlib.h>
  3.  
  4. #define    TRUE    1
  5. #define    FALSE    0
  6. #define    SIZE    8190
  7.  
  8. char    flags[SIZE+1];
  9.  
  10. main()
  11. {
  12.     register int    k, j, i, count, prime;
  13.  
  14.     printf("100 iterations of sieve\n");
  15.     for(i = 1 ; i <= 100 ; i++) {
  16.         count = 0;
  17.         for(j = 0 ; j <= SIZE ; j++)
  18.             flags[j] = TRUE;
  19.         for(j = 0 ; j <= SIZE ; j++) {
  20.             if(flags[j]) {
  21.                 prime = j + j + 3;
  22.                 k = j + prime;
  23.                 while(k <= SIZE) {
  24.                     flags[k] = FALSE;
  25.                     k += prime;
  26.                 }
  27.                 count = count + 1;
  28.             }
  29.         }
  30.     }
  31.     printf("\n%d primes\n", count);
  32.     exit(0);
  33. }
  34.